package com.cn.mmd.service;

import com.cn.mmd.model.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 问卷操作service接口
 * Created by Administrator on 2016/6/29.
 */
public interface QuestionnaireService {

    /**
     * 发布自定义问卷
     * @param questionnaire
     * @return
     */
    int insertQuestionnaire(Questionnaire questionnaire);

    /**
     * 查询主键（通过条件查出当前问卷id）
     * @return
     */
    Questionnaire selectPrimaryKey(String publisherId, String PublishObjects, String questionnaireTitle, String nowTime);

    /**
     * 设置问卷问题
     * @param questionnaireResult
     * @return
     */
    int addQuestion(QuestionnaireResult questionnaireResult);

    /**
     * 查询主键（通过条件查出当前问题id）
     * @return
     */
     List<QuestionnaireResult> selectQuestionPrimaryKey(int questionnaireId);

    /**
     * 查看我发布的所有问卷
     * @param questionnaire
     * @return
     */
    List<Questionnaire> selectMyQuestionnaire(Questionnaire questionnaire);


    /**
     * 查看我发布的所有问卷
     * @param questionnaire
     * @return
     */
    List<Questionnaire> selectAllQuestionnaire(Questionnaire questionnaire);

    /**
     * 查看班级人数
     * @param releaseToWho
     * @return
     */
    int selectNumber(String releaseToWho);


    /**
     * 通过问卷id删除问卷
     * @param questionnaire
     * @return
     */
    int delQuestionnaire(int questionnaire);


    /**
     * 通过班级查出学生id
     * @param releaseToWho
     * @return
     */
    List selectByStudentClass(String releaseToWho);


    /**
     * 查看问卷统计结果
     * @param questionnaireId
     * @return
     */
    QuestionnaireStatistical selectStatistical(int questionnaireId);


    /**
     * 添加对问卷的统计
     * @param questionnaireStatistical
     * @return
     */
    int insertStatistical(QuestionnaireStatistical questionnaireStatistical);


    /**
     * 修改对问卷的统计（统计结果实时改变）
     * @param questionnaireStatistical
     * @return
     */
    int updateStatistical(QuestionnaireStatistical questionnaireStatistical);


    /**
     * 通过课程名查询班级
     * @param courseName
     * @return
     */
    Course selectClasses(String courseName);


    /**
     * 填写提交问卷
     * @param questionnaireSubmit
     * @return
     */
    int insertQuestionnaireSubmit(QuestionnaireSubmit questionnaireSubmit);

    /**
     * 通过问题id查出整个问题信息
     * @param questionId
     * @return
     */
    QuestionnaireResult selectByPrimaryKey(int questionId);


    /**
     * 通过问卷id和问题序号查出整个问题信息
     * @param questionnaireResult
     * @return
     */
    QuestionnaireResult selectByQuestionNum(QuestionnaireResult questionnaireResult);


    /**
     * 通过问卷id查出问卷信息
     * @param questionnaireId
     * @return
     */
    Questionnaire selectByQuestionnaireId(int questionnaireId);

    /**
     * 通过问卷id查出问卷题目等详情
     * @param questionnaireId
     * @return
     */
    List<QuestionnaireResult> selectQuestionnaireResult(int questionnaireId);

    /**
     * 查出我答过的所有问卷
     * @param respondentId
     * @return
     */
    List<QuestionnaireSubmit> selectQuestionnaireSubmit(String respondentId);

    /**
     * 发布人发布问卷的数量
     * @param teacherId
     * @return
     */
    int countQuestionnaire(String teacherId);


    /**
     * 通过时间段查出提交问卷表
     * @param map
     * @return
     */
    List<QuestionnaireSubmit> selectQuestionnaireSubmitByTimeQuantum(Map map);
}
